package com.atguigu.gmall.product.api;

import com.atguigu.gmall.model.product.BaseCategoryView;
import com.atguigu.gmall.model.product.SkuImage;
import com.atguigu.gmall.model.product.SkuInfo;
import com.atguigu.gmall.model.product.SpuSaleAttr;
import com.atguigu.gmall.product.service.SkuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.util.List;

@RequestMapping("/api/sku")
@RestController
public class SkuApiController {

    @Autowired
    SkuInfoService skuInfoService;

    /**
     * 查询sku详情
     * @param skuId
     * @return
     */
    @GetMapping("/info")
    public SkuInfo getSkuInfo(@RequestParam("skuId") Long skuId) {
        return skuInfoService.getById(skuId);
    }

    /**
     * 查询sku图片
     * @param skuId
     * @return
     */
    @GetMapping("/images")
    public List<SkuImage> getSkuImages(@RequestParam("skuId") Long skuId){
        return skuInfoService.getSkuImages(skuId);
    }

    /**
     * 查询sku的分类信息
     * @param skuId
     * @return
     */
    @GetMapping("/category")
    public BaseCategoryView getSkuCategoryView(@RequestParam("skuId")Long skuId){
        return skuInfoService.getSkuCategoryView(skuId);
    }

    /**
     * 查询sku的销售属性
     * @param skuId
     * @return
     */
    @GetMapping("/saleAttrs")
    public List<SpuSaleAttr> getSpuSaleAttrs(@RequestParam("skuId") Long skuId,
                                             @RequestParam("spuId")Long spuId){
        return skuInfoService.getSpuSaleAttrs(skuId,spuId);
    }

    @GetMapping("/api/sku/price/{skuId}")
    BigDecimal getSpuPrice(@PathVariable("skuId")Long skuId){
        return skuInfoService.getSpuPrice(skuId);
    }
}


